//
//  HomeListViewModel.swift
//  Sina
//
//  Created by 管观荣 on 15/9/27.
//  Copyright © 2015年 CHer. All rights reserved.
//

import UIKit
/**
1. 没有继承自 NSObject - 如果用 OC，继承一下就可以
2. 没有使用单例 - 因为用户每一次刷新微博，都是要最新的
用户账户的用单例，因为只有一个账户，避免重复从沙盒加载归档文件

日常开发中，使用`单例`要谨慎，单例都是为了解决性能问题！
*/
class HomeListViewModel {

      /// 微博数据的数组懒加载
    lazy var home = [HomeViewModel]()
    
    // MARK: - 网络方法
    /// 加载微博数组
    func loadHome(finished: (error: NSError?)->()){
        NetWorkTool.sharedTool.loadHome { (result, error) -> () in
            if error != nil {
                finished(error: error)
                return
                
            }
            
            // 1. 取出网络返回字典中的微博数组
            //[[String :AnyObject]]  数组里面－字典
            guard let array = result?["statuses"] as? [[String :AnyObject]] else{
                
                finished(error: NSError(domain: "cn.itcast.error", code: -1001, userInfo: ["message": "数据格式错误"]))
                return
            }
            // 2. 遍历数组，字典转模型
            // 1> 创建一个可变的微博模型数组
            var mutableArray = [HomeViewModel]()
            
            for dict in array {
                //字典转模型
                let home = Home(dict: dict)
                //模型添加到数组
                mutableArray.append(HomeViewModel(home: home))
            }
            self.home += mutableArray;
            
            // 4> 通知调用方 － 网络访问结束
            finished(error: nil)
        }
    }
}
